import app
import json


# 创建 通用 断言函数。 适合各种场景下的断言  ---- 此函数封装的目的，是被调用！
def common_assert(testcase, resp, status_code, success, code, message):
    """
    :param testcase: 代表 测试类 的一个实例
    """
    testcase.assertEqual(status_code, resp.status_code)
    testcase.assertEqual(success, resp.json().get('success'))
    testcase.assertEqual(code, resp.json().get('code'))
    testcase.assertIn(message, resp.json().get('message'))


# 封装函数，读取json文件
def read_json_file(filename):
    with open(filename, mode='r', encoding='utf8') as f:
        jsonData = json.load(f)
        # 定义一个空列表，用例存储 参数化 数据。
        param_list = []

        # 循环遍历，取value值，转成元组，追加到空列表中
        for reqData in jsonData:
            param_list.append(tuple(reqData.values()))

        # 循环结束后，查看转换的结果
        # print(param_list)

        # 将转换后的 [ (),(),().... ] 数据，返回出去！
        return param_list


# 在模块中添加 测试代码  --- 输入 main 回车
if __name__ == '__main__':
    json_file = app.BASE_DIR + '/data/' + 'login_data.json'
    read_json_file(json_file)
